package main

import (
	"fmt"
	"time"
)

/*
单协程内，程序自上而下【串行】执行
多协程，程序【并行】执行
*/

//将在独立的协程中并发执行
func doSomething(i int) {
	//子协程休眠过程中，主协程结束，子协程也会立刻结束
	//time.Sleep(1*time.Second)
	fmt.Println("我是战狼小分队", i)
}

func main() {

	//这里是主协程
	fmt.Println("总部要行动了")
	//并发一百条协程
	for i := 1; i < 101; i++ {
		//使用了go开始了并发执行子协程
		go doSomething(i)
	}
	//这里是主协程
	fmt.Println("发现小分队顺序是乱的，是并发")
	//为什么要让主协程睡觉？因为主协程结束，子协程全部结束
	time.Sleep(1 * time.Second)
	fmt.Println("主协程结束")
}
